SQL CASE

دستور CASE از طریق شرایط می گذرد و زمانی که شرط اول برآورده شد مقداری را برمی گرداند (مانند دستور if-then-else). بنابراین، هنگامی که یک شرط درست باشد، خواندن آن متوقف می شود و نتیجه را برمی گرداند. اگر هیچ شرطی درست نباشد، مقدار موجود در عبارت ELSE را برمی‌گرداند.

اگر قسمت ELSE وجود نداشته باشد و هیچ شرطی درست نباشد، NULL را برمی‌گرداند.

SQL زیر شرایط را طی می کند و با برآورده شدن شرط اول مقداری را برمی گرداند:

SELECT OrderID, Quantity,
CASE
    WHEN Quantity > 30 THEN 'The quantity is greater than 30'
    WHEN Quantity = 30 THEN 'The quantity is 30'
    ELSE 'The quantity is under 30'
END AS QuantityText
FROM OrderDetails; 

SQL زیر مشتریان را بر اساس شهر سفارش می دهد. با این حال، اگر شهر NULL است، بر اساس کشور سفارش دهید:

SELECT CustomerName, City, Country
FROM Customers
ORDER BY
(CASE
    WHEN City IS NULL THEN Country
    ELSE City
END);